home *** CD-ROM | disk | FTP | other *** search
- model tiny
- codeseg
- .386
- char_pos=40 ;40 from left border
- num_char = offset end_dial - offset dial
-
- org 100h
- start:
- mov ax,0a000h
- mov es,ax
-
- mov ax,13h
- int 10h ;std-vga-mode
- xor dx,dx ;dx is char-pointer
- zoomagain:
-
- ;del_char
- xor di,di
- xor eax,eax
- mov cx,16000
- rep stosd ;just delete it all
- ;del_char end
-
- mov bp,2 ;first char is 2x2
- doitagain:
- lea bx,dial ;pointer to loc. of display string
- add bx,dx ;add the char-pointer to get current char
- push dx ;save char-pointer to go on after this rountine
-
- call disp_char
-
- mov dx, 03dah
- vrt:
- in al, dx
- test al, 8
- jnz short vrt
- novrt:
- in al, dx
- test al, 8
- jz short novrt
- mov dx, 03dah
- vrt2:
- in al, dx
- test al, 8
- jnz short vrt2
- novrt2:
- in al, dx
- test al, 8
- jz short novrt2
-
-
- mov ah,1
- int 16h ;the keyboard-check
- jnz short raushier ;exit when ESC
- pop dx ;restote char-pointer
-
- inc bp ;make it bigger
- cmp bp,28 ;till it's as big as screen
- jne short doitagain ;print char 2x bigger
-
- inc dx ;position is display-string
- cmp dx,num_char ;new chars till there are no more of them
- jne short zoomagain ;print the next char
-
- raushier: ;goto dos
- mov ax,3
- int 10h
- lea dx,dial
- mov ah,9
- int 21h
- int 20h
-
- disp_char:
- mov col,38 ;start color
- add col,dl ; add char-pointer to make every char look different
- ;PRINT_CHAR
- mov si,char_pos ; position in video meory
- mov al,[bx]
- xor ah,ah
- shl ax,3
- mov di,0fa6eh ; char-table start
- add di,ax
- mov dl,8 ; vertical pixels
- mk0:
- push ds
- mov ax,0f000h
- push ax
- pop ds ; char-table segment in ES
- mov al,ds:[di] ; get first line
- pop ds
- mov dh,8 ; horizontal pixels
- mk1: rcl al,1 ; get the bits
- jnc short nopixel ; if zerro-bit -> don't set a pixel
-
- ;set a pixel
- push ax
- mov al,col
- call setpoint
- pop ax
- jmp short mk3
-
- ;kill pixel
- nopixel:
- push ax
- xor al,al
- call setpoint
- pop ax
-
- mk3: add si,bp ; next pixel
- dec dh ; next horizontal pixel in char-table
- jnz short mk1 ; repeat till there are 8 pixels set
- inc di ; next vertical line of the char
- mov ax,bp
- shl ax,3
- sub si,ax
- mov ax,320
- mov bx,bp
- dec bx
- push dx
- mul bx
- pop dx
- add si,ax
- dec col
- dec dl
- jnz short mk0 ; repeat till there are all 8 lines set
- ;PRINT_CHAR-END
- ret
- ;end of disp_char
-
- setpoint:
- push dx ;SET_POINT
- mov bx,si
- mov dx,bp
- dec dx
- yloop:
- mov cx,bp
- xloop:
- mov byte ptr es:[bx],al
- inc bx
- loop xloop
- dec dx
- jz short not_again
- add bx,320
- sub bx,bp
- jmp short yloop
- not_again:
- pop dx ;SET_POINT-END
- ret
-
- dial db 'CALL TRIOPTIMUM NOW! +41313027385'
- end_dial:
- db '$'
- col db ?
-
- ends
- end start
-
- █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █▄▄ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
- █ SysGod: Deímos █▄▄ █▄▄▄ TRiOPTiMUM █
- █ USRobotics 28.8k █▄▄▄ █▄▄▄▄▄▄▄▄▄ █
- █ One Gigabyte Online █▄▄▄▄▄▄▄▄▄ █▄▄▄▄▄▄▄█
- █ Warez ■ Underground ■ Viriis █▄▄▄▄▄▄▄▄▄▄
- █ FNF WHQ ■ moz[IC]art Memberboard █
- █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
-
- +41.313.027385
-
- The Sharom broke apart like an egg and began to drift down,
- falling, an obsidian inferno. Darkness spread across the sky,
- swallowing the sun in unnatural night,
- as if the light of those flames was blackness.
-
-